package main

import (
	"fmt"
	"net"
	"net/rpc"
	"net/rpc/jsonrpc"
)

func main() {
	//1. 用rpc.Dial和rpc微服务端建立连接
	conn, err1 := net.Dial("tcp", "127.0.0.1:7001")
	if err1 != nil {
		fmt.Println(err1)
	}

	// 当客户端退出的时候关闭连接
	defer conn.Close()

	// jsonrpc时 建立基于json编码的apc服务
	client := rpc.NewClientWithCodec(jsonrpc.NewClientCodec(conn))

	// 调用远程函数
	var reply string
	err2 := client.Call("hello.SayHello", "我是客户端", &reply)
	if err2 != nil {
		fmt.Println(err2)
	}

	fmt.Println(reply)
}

/*
把默认的rpc 改为 jsonrpc
1、rpc.Dial 改成 net.Dial
2、增加建立基于json编码的apc服务 client := rpc.NewClientWithCodec(jsonrpc.NewClientCodec(conn))
3、conn.Call 改成 client.Call
*/
